\begin{tikzpicture}
    \tikzset{
        yuanzhu/.pic = {
            \pgfmathsetmacro{\angle}{45}
            \pgfmathsetmacro{\len}{2}
            \pgfmathsetmacro{\r}{0.2}

            \coordinate (O) at (0, 0);
            \coordinate (O') at ({\len * cos(\angle)},  {\len * sin(\angle)});
            \coordinate (dA) at ({\r * cos(90 + \angle)}, {\r * sin(90 + \angle)});
            \coordinate (dB) at ({\r * cos(270 + \angle)}, {\r * sin(270 + \angle)});

            \draw [fill=white] (O) circle (\r);
            \fill[fill=black] (O) circle (1pt);
            \draw [fill=white]
                ($(O) + (dA)$) -- ($(O') + (dA)$)
                arc [start angle=90 + \angle, end angle=-90 + \angle, radius=\r]
                -- ($(O) + (dB)$)
                arc [start angle=-90 + \angle, end angle=90 + \angle, radius=\r];
        }
    }

    \begin{scope}
        \pgfmathsetmacro{\angle}{45}
        \pgfmathsetmacro{\len}{2}
        \pgfmathsetmacro{\y}{8}
        % \draw (0, 0) -- (0.2*\y, 0.33*\y);
        % \draw (0.4, 0) -- (-0.2*\y+0.4, 0.33*\y);
        \path [name path=a1, xshift=0.25cm]  (0.2*\y, 0.33*\y) -- ($(0.2*\y, 0.33*\y)!1.1!(0, 0)$);
        \path [name path=a2, xshift=-0.25cm] (-0.2*\y+0.4, 0.33*\y) -- ($(-0.2*\y+0.4, 0.33*\y)!1.1!(0.4, 0)$);
        \path [name intersections={of=a1 and a2, by=BMa}];      % Bottom Middle point a
        \coordinate (TRa) at (0.25 + 0.2*\y, 0.33*\y);          % Top Right point a
        \coordinate (TLa) at (-0.25 -0.2*\y+0.4, 0.33*\y);      % Top Left point a
        \coordinate (BMb) at ($(BMa) + ({\len * cos(\angle)},  {\len * sin(\angle)})$);
        \coordinate (TRb) at ($(TRa) + (({\len * cos(\angle)}, {\len * sin(\angle)})$);
        \coordinate (TLb) at ($(TLa) + ({\len * cos(\angle)},  {\len * sin(\angle)})$);

        \pgfmathsetmacro{\delta}{0.1}
        \coordinate (BMea) at ($(BMa) + (0, -0.1)$);            % Bottom Middle extend point a
        \coordinate (BMeb) at ($(BMb) + (0, -0.1)$);
        \coordinate (BMec) at ($(BMb) + ({\delta * cos(\angle)},  {\delta * sin(\angle)})$);
        \coordinate (TLea) at ($(TLa) + (-0.1, 0)$);
        \coordinate (TLeb) at ($(TLb) + (-0.1, 0)$);
        \coordinate (TLec) at ($(TLeb) + ({\delta * cos(\angle)},  {\delta * sin(\angle)})$);
        \coordinate (TRea) at ($(TRa) + (0.1, 0)$);
        \coordinate (TReb) at ($(TRb) + (0.1, 0)$);
        \coordinate (TRec) at ($(TReb) + ({\delta * cos(\angle)},  {\delta * sin(\angle)})$);

        \coordinate (TMPLa) at ($(BMea) + (-3, 0)$);            % Temp Left point a
        \coordinate (TMPRa) at ($(BMea) + (3, 0)$);
        \coordinate (BLea) at ($(TMPLa)!(TLea)!(TMPRa)$);       % Bottom Left extend point a
        \coordinate (BRea) at ($(TMPLa)!(TRea)!(TMPRa)$);       % Bottom Right extend point a

        \coordinate (TMPLc) at ($(BMec) + (-3, 0)$);
        \coordinate (TMPRc) at ($(BMec) + (3, 0)$);
        \coordinate (BLec) at ($(TMPLc)!(TLec)!(TMPRc)$);
        \coordinate (BRec) at ($(TMPLc)!(TRec)!(TMPRc)$);

        \draw (BLea) -- (BLec) -- (TLec) -- (TLea) -- cycle;
        \draw ($(BLea)!0.5!(TLea)$) -- ($(BLec)!0.5!(TLec)$);
        \draw ($(BLea)!0.5!(BLec)$) -- ($(TLea)!0.5!(TLec)$);

        \draw ($(BLea)!0.5!(BLec)$) -- ($(BRea)!0.5!(BRec)$);

        \draw [pattern={mylines[angle=-45, distance={4pt}]}]
            (BMa) -- (BMb) -- (TLb) -- (TLa) -- cycle;
        \draw [pattern={mylines[angle=-45, distance={4pt}]}]
            (BMb) -- (TLb) -- (TRb) -- cycle;

        \foreach \y in {1,...,6}
            \foreach \x [parse=true] in {1,...,\y}
                \draw (-0.2*\y+0.4*\x,0.33*\y) pic{yuanzhu};

        \draw [fill=white] (BMa) -- (BMb) -- (TRb) -- (TRa) -- cycle;



        \draw [fill=white] (BMa) -- (BMea) -- (TLea) -- (TLa) -- cycle;
        \draw [fill=white] (BMa) -- (BMea) -- (TRea) -- (TRa) -- cycle;
        \draw [fill=white] (TRa) -- (TRb) -- (TReb) -- (TRea) -- cycle;
        \draw [fill=white] (BMea) -- (TRea) -- (TReb) -- (BMeb) -- cycle;
        \draw (TReb) -- (TLeb) -- (TLea);
        \draw [fill=white] (TLeb) -- (TLec) -- (TRec) -- (TReb) -- cycle;

        \draw (BRea) -- (BRec) -- (TRec) -- (TRea) -- cycle;
        \draw ($(BRea)!0.5!(TRea)$) -- ($(BRec)!0.5!(TRec)$);
        \draw ($(BRea)!0.5!(BRec)$) -- ($(TRea)!0.5!(TRec)$);

        \draw  (TLea) -- (BLea) -- (BRea) -- (TRea);

        \node at (0.2, -0.5) {（1）};
    \end{scope}

    \begin{scope}[xshift=7cm]
        \foreach \y in {1,...,6}
            \foreach \x [parse=true] in {1,...,\y}
                \draw (-0.2*\y+0.4*\x,0.33*\y) circle(0.2);

        \foreach \y in {1,...,6}
            \foreach \x [parse=true] in {1,...,7-\y}
                \draw [densely dotted] (0.1+0.2*\y+0.4*\x,0.33*\y) circle(0.2);

        \pgfmathsetmacro{\y}{8}
        %\draw (0, 0) -- (0.2*\y, 0.33*\y);
        %\draw (0.4, 0) -- (-0.2*\y+0.4, 0.33*\y);

        \path [name path=a1, xshift=-0.25cm] (-0.2*\y+0.4, 0.33*\y) -- ($(-0.2*\y+0.4, 0.33*\y)!1.1!(0.4, 0)$);
        \path [name path=a2, xshift=0.25cm]  (0.2*\y, 0.33*\y) -- ($(0.2*\y, 0.33*\y)!1.1!(0, 0)$);
        \path [name path=a3, xshift=0.25cm]
            (0.1+0.2*6+0.4*1,0.33*6)  coordinate (tmpa)
            (0.1+0.2*1+0.4*6,0.33*1)  coordinate (tmpb)
            ($(tmpa)!1.3!(tmpb)$) -- ($(tmpb)!1.3!(tmpa)$);
        \path [name intersections={of=a2 and a3, by=C}];
        \path [name path=top] ($(C) + (-4, 0)$) -- ($(C) + (1, 0)$);
        \path [name intersections={of=a1 and a2, by=B}];
        \path [name path=bottom] ($(B) + (-1, 0)$) -- ($(B) + (4, 0)$);
        \path [name intersections={of=a1 and top, by=A}];
        \path [name intersections={of=a3 and bottom, by=D}];

        \draw (A) -- (B) -- (C) -- (D);

        % \fill[fill=red] (C) circle (1pt);
        \node at (1, -0.5) {（2）};
    \end{scope}
\end{tikzpicture}
